﻿Partial Class Administracion_Proyectos
    Inherits System.Web.UI.Page
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If IsPostBack = False Then
            cargarproyectos()
        End If
    End Sub

    Sub cargarproyectos()
        Dim bd As New BdHogaresDataContext()
        Dim a = From u In bd.Web_Proyectos
                Select u.idProyecto, u.Nombre, u.Familias, u.CodigoProyecto, u.Finicio, u.Ffin
        grdproyectos.DataSource = a
        grdproyectos.DataBind()

        Using bda As New BdHogaresDataContext()
            Dim b = From p In bda.web_Operadores
                    Order By p.idOperador
                    Select p.idOperador, p.Nombre
            ddlOperador.DataSource = b
            ddlOperador.DataTextField = "Nombre"
            ddlOperador.DataValueField = "Idoperador"
            ddlOperador.DataBind()
            ddlOperador.Items.Insert(0, New ListItem("Seleccione un Operador", ""))
        End Using
    End Sub

    Protected Sub btnNuevo_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNuevo.Click
        pnlRegistrarProyecto.Visible = True
        Panel1.Visible = True
    End Sub

    Protected Sub btnCancelar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancelar.Click
        pnlRegistrarProyecto.Visible = False
    End Sub

    Protected Sub btnGuardar_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnGuardar.Click
        If Page.IsValid = False Then
            Exit Sub
        End If
        If String.IsNullOrEmpty(hdIdproyecto.Value) Or hdIdproyecto.Value = 0 Then
            insertarProyecto()
        Else
            ActualizaProyecto(hdIdproyecto.Value)
        End If
    End Sub
    Sub insertarProyecto()
        Dim u As New Web_Proyecto
        u.Nombre = txtNombreproyecto.Text
        u.Familias = txtfamilias.Text
        u.CodigoProyecto = txtcodigoproyecto.Text
        u.Finicio = txtfechainicio.Text
        u.Ffin = txtfechafin.Text
        u.Actividades = txtActividades.Text
        u.IdOperador = ddlOperador.SelectedValue
        Using bd As New BdHogaresDataContext
            bd.Web_Proyectos.InsertOnSubmit(u)
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 1, Request.CurrentExecutionFilePath)
        End Using
        Dim script = "window.location ='" & Context.Request.Url.ToString & "';"
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Abrir", script, True)
    End Sub
    Sub ActualizaProyecto(ByVal idproyecto As Integer)
        Using bd As New BdHogaresDataContext
            Dim a = From us In bd.Web_Proyectos
                            Where us.idProyecto = CInt(idproyecto)
                            Select us
            Dim u As New Web_Proyecto
            u = a.FirstOrDefault
            u.Nombre = txtNombreproyecto.Text
            u.Familias = txtfamilias.Text
            u.CodigoProyecto = txtcodigoproyecto.Text
            u.Finicio = txtfechainicio.Text
            u.Ffin = txtfechafin.Text
            u.Actividades = txtActividades.Text
            bd.SubmitChanges()
            bd.registrarLog(Context.User.Identity.Name, 1, Request.CurrentExecutionFilePath)
        End Using
        Dim script = "window.location ='" & Context.Request.Url.ToString & "';"
        ScriptManager.RegisterStartupScript(Page, Page.GetType(), "Abrir", script, True)
    End Sub

    Protected Sub grdproyectos_RowCommand(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles grdproyectos.RowCommand
        Select Case e.CommandName
            Case "Editar"
                Using bd As New BdHogaresDataContext
                    Dim a = From u In bd.Web_Proyectos
                            Where u.idProyecto = CInt(e.CommandArgument)
                            Select u

                    Dim us As New Web_Proyecto()
                    us = a.FirstOrDefault
                    ddlOperador.SelectedValue = us.IdOperador
                    txtNombreproyecto.Text = us.Nombre
                    txtfamilias.Text = us.Familias
                    txtcodigoproyecto.Text = us.CodigoProyecto
                    txtfechainicio.Text = us.Finicio
                    txtfechafin.Text = us.Ffin
                    txtActividades.Text = us.Actividades
                    Panel1.Visible = False

                    pnlRegistrarProyecto.Visible = True


                End Using


            Case "Eliminar"
                Try
                    Using bda As New BdHogaresDataContext
                        Dim a = From u In bda.Web_FormularioIdentificacionHogars
                                Where u.idProyecto = CInt(e.CommandArgument)
                                Select u

                        Dim us As New Web_FormularioIdentificacionHogar()
                        us = a.FirstOrDefault
                        hdproyectoexiste.Value = us.idProyecto
                        If hdproyectoexiste.Value <> 0 Then
                            Response.Write("<script>alert('No se puede eliminar el proyecto por que tiene hogares asociados a él, elimine estos antes')</script>")
                            Exit Sub
                        End If

                    End Using
                Catch ex As Exception
                End Try
                Using bd As New BdHogaresDataContext
                    Dim a As Integer = e.CommandArgument
                    bd.eliminarproyectosbyid(a)
                    bd.SubmitChanges()
                End Using
                cargarproyectos()
            Case Else
                Exit Sub
        End Select
    End Sub


    Protected Sub CustomValidator1_ServerValidate(ByVal source As Object, ByVal args As System.Web.UI.WebControls.ServerValidateEventArgs) Handles CustomValidator1.ServerValidate

    End Sub
End Class


